/*
 *  BullyAI.h
 *  RiskAI
 *
 *  Bully AI will attack anything weaker than he is.
 *
 *  He operates on these priorities:
 *
 *    - Attack all weaker territories
 *    - Put troops in territories next to weakest enemies
 *    - Fortify/move troops to territories next to weakest enemies
 *	  - Pick territories randomly
 *    - Defend with dice smartly, but aggressively (goes for 4's)
 *
 */

#ifndef BULLY_AI_H_INCLUDED
#define BULLY_AI_H_INCLUDED

#include "Player.h"

class CBullyAI : public CPlayer
{
public:
	
	CBullyAI(int iIndex, CBoard* pxBoard);

	// virtual functions overridden in derived classes
	virtual int PickTerritory(std::vector<int> viAvailables);
	virtual int AssignTroops(int iNumTroops);
	virtual int MoveTroops(int iSourceIndex, int iDestinationIndex);
	virtual RiskAction DecideOnAction(std::vector<int> viViableAttackers);
	virtual int PickDefendingDie(int* aiAttackDice, int iTarget);
	virtual CFortification FortifyTroops(std::vector<int> viFortifiers);

};

#endif // BULLY_AI_H_INCLUDED